Skip to content

chore: allowlist GlueHook V3 hook - #1408

Closed
lalilulel0x wants to merge 1 commit into
Uniswap:mainfrom
lalilulel0x:add-gluehook-allowlist
Closed

lalilulel0x wants to merge 1 commit into
Uniswap:mainfrom
lalilulel0x:add-gluehook-allowlist

Conversation

@lalilulel0x

@lalilulel0x lalilulel0x commented Aug 7, 2026

Copy link
Copy Markdown

Allowlist GlueHook V30xbb021554c5294328b04fa313669715bd201ba040 — on the 11 mainnets where it is deployed and the routing API has a ChainId: Ethereum, Optimism, BNB Chain, Polygon, Avalanche, Base, Arbitrum, Unichain, World Chain, Soneium, X Layer. Same address on every chain (plain CREATE from a fresh key, nonce 0 library, nonce 1 hook).

What the hook does. A free, keyless, general-purpose Uniswap v4 hook: every pool that adopts it gets a permissionless buyback pot that buys the pool's own token behind every swap (volume-paced, gated on a reference tick), plus an optional auto-compounding LP program. Site: https://gluehook.trade · source: https://github.com/glue-finance/GlueHook · docs: https://gluehook.trade/docs

Why it is safe to route through. Permission bits 0x2040 = beforeInitialize + afterSwap only. No beforeSwap, no *ReturnDelta flags, no dynamic fees (dynamic-fee pools are refused at beforeInitialize). The hook never touches the swapper's amounts, so the quoter's result is exactly what the user receives; the pot's own buy happens inside afterSwap against the hook's own balance. Verified source on every chain's explorer; ERC-7730 clear-signing descriptors are in the repository under erc7730/.

This supersedes the earlier revision of this PR, which pointed at the previous generation (V2, 0x0f41…20c8, bits 0x20C8 with beforeSwap + beforeSwapReturnDelta). V2 stays live for its existing pools but is not the hook we are asking to allowlist.

Example pool (Base)

https://app.uniswap.org/explore/pools/base/0x92539a4f035e4cf0584a5d3b2a06b11fa911715a1279d3d6a9214045a213394d

PoolKey currency0 = ETH (0x0), currency1 = CLAWD 0x9f86dB9fc6f7c9408e8Fda3Ff8ce4e78ac7a6b07, fee = 10000, tickSpacing = 200, hooks = 0xbb021554c5294328b04fa313669715bd201ba040
PoolId 0x92539a4f035e4cf0584a5d3b2a06b11fa911715a1279d3d6a9214045a213394d
Launch tx https://basescan.org/tx/0x51cbe98739e2c7d80a88e4f7ccddace5732f6fef3284099c34593b623ced79dd
Swaps both ways, add LP, remove 50% LP done through the Universal Router 0x6ff5…9b43 and the hook, all successful

V4Quoter.quoteExactInputSingle on Base (0x0d5e0f971ed27fbff6c2837bf31316121532048d) for 0.00001 ETH → CLAWD through this pool returns amountOut = 5041987413827509707048, gasEstimate = 445709; StateView.getSlot0 shows tick 200984, lpFee 10000, liquidity 4563899956575731384.

I could not reach the 0c1j0xp0hl.execute-api.us-east-2.amazonaws.com/prod/quote endpoint used in #1390 / #1391 from outside (it answers 403 Forbidden), so the /quote call with hooksOptions=HOOKS_INCLUSIVE&poolsToManuallyRouteThrough=0x92539a4f…394d is left for a maintainer to run, in the same form as #1390:

/prod/quote?amount=10000000000000&deadline=1800&enableFeeOnTransferFeeFetching=true&enableUniversalRouter=true&hooksOptions=HOOKS_INCLUSIVE&portionBips=25&portionRecipient=0x5d64D14D2CF4fe5fe4e65B1c7E3D11e18D493091&protocols=v4&quoteIntent=swap&quoteSpeed=standard&recipient=0xc1CFB2A82Bd1299a7D3b52BbD382Bc2E4864C9BD&simulateFromAddress=0xc1CFB2A82Bd1299a7D3b52BbD382Bc2E4864C9BD&slippageTolerance=2.5&tokenInAddress=ETH&tokenInChainId=8453&tokenOutChainId=8453&tokenOutAddress=0x9f86dB9fc6f7c9408e8Fda3Ff8ce4e78ac7a6b07&type=exactIn&enableDebug=true&requestId=fca167d3-f0b8-4769-a3e0-9db90e3ad159&poolsToManuallyRouteThrough=0x92539a4f035e4cf0584a5d3b2a06b11fa911715a1279d3d6a9214045a213394d

Live V3 pools on every other allowlisted chain

Same PoolKey shape everywhere (currency0 = native, fee = 10000, tickSpacing = 200, hooks = 0xbb02…a040), each launched, swapped both ways, LP added and 50 % removed:

Chain Pair PoolId
Ethereum ETH / PEPE 0x6982…1933 0xff4ee2c764ab548d328946d48745dd0cf9ff3c1437987e382656717463530a1c
Arbitrum ETH / PEPE 0x25d8…bb00 0x17effe84fcc8fba2f85d8534cebb323b14355b45efab4e31afa8361e9cf30f52
BNB Chain BNB / PEPE 0x25d8…bb00 0x17effe84fcc8fba2f85d8534cebb323b14355b45efab4e31afa8361e9cf30f52
Polygon POL / APEPE 0xA3f7…3D3A 0xccf13308d798ac3074640aba552b1510d9cfcf76362fa19c92fdce947d2d307f
Avalanche AVAX / COQ 0x420F…2329 0x138b11bda9762467464333ee05e884ab14397cbdc0b5afecba15da0dc9eb2b9e
Unichain ETH / HYPE 0x15D0…f68d 0xf8822c0e9dcaac58cba94c5c4de577fc0833823682bdc01d707771d9605b0e2a
Robinhood Chain ETH / FRONG 0x6245…0c47 0x94f23de550de0e097f834d0f080bd45708e1c90b4718d91d346487232e93647e
Optimism ETH / OP 0x4200…0042 0x6d90e541318d6085ffa77ee59591d3f3d7ab30ae0df49d02361502563a299646
Soneium ETH / ASTR 0x2CAE…9441 0xaa5d4af79d979180e9b3e91c647f616035b09a8b529bfff024c06ffefbf7f00a
World Chain ETH / WLD 0x2cFc…3003 0x0195a110588bb663e4c63064082f2a7770d62ecc9c5899e6d013757fdbfe7df9
MegaETH ETH / USDm 0xFAfD…79E7 0x232b62d239d1cd8df8b86a8ec68935b760961b48a76dfea116357ebef9cf4278
X Layer OKB / USDC 0x74b7…6d22 0x904f8af4ef19f16e0726cf40f4342b1f9a5d01baef716f6a2acd8a3054aeacff

@lalilulel0x
lalilulel0x force-pushed the add-gluehook-allowlist branch 2 times, most recently from d260276 to 3b5f90c Compare August 7, 2026 21:46
@graphite-app
graphite-app Bot requested review from a team and jsy1218 August 19, 2026 14:16
@graphite-app

graphite-app Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Graphite Automations

"Request reviewers once CI passes on routing-api repo" took an action on this PR • (08/19/26)

3 reviewers were added and 1 assignee was added to this PR based on Siyu Jiang (See-You John)'s automation.

@lalilulel0x lalilulel0x changed the title Add GlueHook address to the hooks allowlist (16 chains, one address) Add GlueHook address to the hooks allowlist (11 chains, one address) Aug 23, 2026
@lalilulel0x
lalilulel0x force-pushed the add-gluehook-allowlist branch from 80da458 to 89da5b7 Compare September 14, 2026 10:36
@lalilulel0x lalilulel0x changed the title Add GlueHook address to the hooks allowlist (11 chains, one address) chore: allowlist GlueHook V3 hook Sep 14, 2026
0xbb021554c5294328b04fa313669715bd201ba040 on Ethereum, Optimism, BNB, Polygon, Avalanche, Base, Arbitrum, Unichain, World Chain, Soneium and X Layer. Flags 0x2040 (beforeInitialize + afterSwap, no delta flags).

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant